#ifndef RPG_SKILL_ORZ
#define RPG_SKILL_ORZ

#ifdef __cplusplus
extern "C" {
#endif

typedef void (*RPG_SKILL)(void* caster,void* target);

typedef struct rpg_skill_data
{
	int id;
	char* name;
	char* description;
	RPG_SKILL skill;
}RPG_SKILL_DATA;

extern RPG_SKILL_DATA GLB_SKILLS[];


#define RPG_SKILL_NAME	rpg_skill
#define RPG_REGISTER_SKILL(id) void RPG_SKILL_NAME##id##(void* caster,void* target)
#define RPG_IMPLEMENT_Skill(id) void RPG_SKILL_NAME##id##(void* caster,void* target)
#define GLB_SKILLS_REGISTER(id) {SKILL##id,NAME##id,DESCRIPTION##id,RPG_SKILL_NAME##id}



//skill 1 ...
#define SKILL1				1
#define NAME1				"test"
#define DESCRIPTION1		"just a test"
void rpg_skill1(void* caster,void* target);

//skill 2 ... 
#define SKILL2	2
#define NAME2			"RPG_REGISTER_SKILL test..."
#define DESCRIPTION2	"GLB_SKILLS_REGISTER test..."
RPG_REGISTER_SKILL(2);



#ifdef __cplusplus
};
#endif

#endif